package com.example.demo.service;


import com.example.demo.mapper.ChapterResourceMapper;
import com.example.demo.entity.ChapterResource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Optional;

@Service
public class ChapterResourceService {

    @Autowired
    private ChapterResourceMapper mapper;

    // 根据章节 ID 获取所有资源
    public List<ChapterResource> findResourcesByChapterId(Integer chapterId) {
        return mapper.findByChapterId(chapterId);
    }

    // 根据资源 ID 查找单个资源
    public Optional<ChapterResource> findResourceById(Integer resourceId) {
        return mapper.findById(resourceId);
    }

    // 上传/创建资源记录
    public ChapterResource createResource(ChapterResource resource) {
        if (resource.getChapterId() == null || resource.getResourceName() == null || resource.getResourceType() == null) {
            throw new IllegalArgumentException("章节ID、资源名称和资源类型不能为空。");
        }

        try {
            mapper.insert(resource);
            return resource; // 返回包含自增 ID 的记录
        } catch (Exception e) {
            // 捕获外键约束失败（chapterId 不存在）
            throw new RuntimeException("创建资源失败，请检查所属章节ID是否存在。", e);
        }
    }

    // 更新资源信息
    public boolean updateResource(ChapterResource resource) {
        // 确保要更新的资源存在
        if (resource.getResourceId() == null || mapper.findById(resource.getResourceId()).isEmpty()) {
            return false;
        }
        return mapper.update(resource) > 0;
    }

    // 删除资源记录
    public boolean deleteResource(Integer resourceId) {
        return mapper.deleteById(resourceId) > 0;
    }
}